﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq.Expressions;
using System.Reflection;

namespace PropertyExpression.ControllableQuery
{
    public static class Params
    {
        public static IParams<T> AsParams<T>(this T it, SqlCommand sqlCommand)
        {
            return new ParamsImpl<T>();
        }

        private class ParamsImpl<T> : IParams<T>
        {
            public string Param<TProperty>(Expression<Func<T, TProperty>> propertyExpression)
            {
                var propertyInfo = (PropertyInfo)((MemberExpression)propertyExpression.Body).Member;
                throw new NotImplementedException();
            }

            public string Param<TProperty>(Expression<Func<T, TProperty>> propertyExpression, int index)
            {
                throw new NotImplementedException();
            }

            public string Param<TItem>(Expression<Func<T, IEnumerable<TItem>>> propertyExpression)
            {
                throw new NotImplementedException();
            }

            public string Param<TItem>(Expression<Func<T, IEnumerable<TItem>>> propertyExpression, int index)
            {
                throw new NotImplementedException();
            }
        }
    }
}